package com.uzai.console.service.rocketmq;

import com.uzai.common.dto.notice.AppNoticeDto;
import com.uzai.common.msg.MsgDto;
import com.uzai.common.msg.NoticeMsgDto;
import com.uzai.common.protoc.SendSmsReqProtoc;
import com.uzai.console.dto.feign.alarm.AlarmMsgFeignDto;
import com.uzai.console.dto.feign.orderreport.OrderReportDto;
import com.uzai.console.dto.rocketmq.configplan.BigPromotionDto;
import com.uzai.console.dto.rocketmq.configplan.ClientSetDto;
import com.uzai.console.dto.rocketmq.devicewechatinfo.CloseClientAppDto;
import com.uzai.console.dto.rocketmq.devicewechatinfo.UpdateClientAppDto;
import com.uzai.console.dto.rocketmq.friendrequest.AddUserApplyDto;
import com.uzai.console.dto.rocketmq.friendrequest.DeleteUserDto;
import com.uzai.console.dto.rocketmq.groupsendjob.GroupSendMsgDto;
import com.uzai.console.dto.rocketmq.pyq.PostSnsCommentDto;
import com.uzai.console.dto.rocketmq.wechatuser.SetUserRemarkDto;
import com.uzai.console.dto.rocketmq.wxgroup.AddFriendReqDto;
import com.uzai.console.dto.rocketmq.wxgroup.GetGroupMemberListDto;
import com.uzai.console.dto.rocketmq.wxgroup.KickGroupMemberDto;
import com.uzai.console.dto.rocketmq.wxgroup.QuitGroupDto;
import com.uzai.console.dto.uzaichat.kefuuser.KefuUserConfigDto;

/**
 * @author liuqi
 * @date 2021年11月30日 16:37
 */
public interface NoticeMsgPushProducerService {

    /**
     * 发送普通消息
     * @author jitwxs
     * @date 2021/11/30 17:09
     * @param msgDto
     */
    void sendMessage(MsgDto<NoticeMsgDto> msgDto);

    /**
     * 发送App推送消息
     * @author jitwxs
     * @date 2021/11/30 17:09
     * @param appNoticeDto
     */
    void sendAppMessage(AppNoticeDto appNoticeDto);

    /**
     * 通过好友申请消息
     * @author jitwxs
     * @date 2021/11/30 17:09
     * @param msgDto
     */
    void addFriendRequest(MsgDto<AddUserApplyDto> msgDto);

    /**
     * 删除好友
     * @author jitwxs
     * @date 2021/11/30 17:09
     * @param msgDto
     */
    void deleteUser(MsgDto<DeleteUserDto> msgDto);

    /**
     * 同步微信通信录指令
     * @author jitwxs
     * @date 2021/11/30 17:09
     * @param msgDto
     */
    void updateWxContacts(MsgDto<Object> msgDto);

    /**
     * 更新客户端指令
     * @author jitwxs
     * @date 2021/11/30 17:09
     * @param msgDto
     */
    void updateClientApp(MsgDto<UpdateClientAppDto> msgDto);

    /**
     * 关闭客户端和微信指令
     * @author jitwxs
     * @date 2021/11/30 17:09
     * @param msgDto
     */
    void closeClientApp(MsgDto<CloseClientAppDto> msgDto);

    /**
     * 退出微信群指令
     * @author jitwxs
     * @date 2021/11/30 17:09
     * @param msgDto
     */
    void quitWxGroup(MsgDto<QuitGroupDto> msgDto);

    /**
     * 增加群发消息
     * @author jitwxs
     * @date 2021/11/30 17:09
     * @param msgDto
     */
    void groupSendMsg(GroupSendMsgDto msgDto);

    /**
     * 设置用户备注
     * @author jitwxs
     * @date 2021/11/30 17:09
     * @param msgDto
     */
    void setUserRemark(MsgDto<SetUserRemarkDto> msgDto);

    /**
     * 踢掉群成员
     * @author jitwxs
     * @date 2021/11/30 17:09
     * @param msgDto
     */
    void kickGroupUser(MsgDto<KickGroupMemberDto> msgDto);

    /**
     * 刷新微信群成员
     * @author jitwxs
     * @date 2021/11/30 17:09
     * @param msgDto
     */
    void getGroupMemberList(MsgDto<GetGroupMemberListDto> msgDto);

    /**
     * 添加微信群好友请求
     * @author jitwxs
     * @date 2021/11/30 17:09
     * @param msgDto
     */
    void addFriendReq(MsgDto<AddFriendReqDto> msgDto);

    /**
     * 单独发送朋友圈评论
     * @author jitwxs
     * @date 2021/11/30 17:09
     * @param msgDto
     */
    void sendPyqComment(MsgDto<PostSnsCommentDto> msgDto);

    /**
     * 推送大促插件数据
     * @author lucher
     * @date 2022/09/15 17:09
     * @param msgDto
     */
    void pushBigPromotion(MsgDto<BigPromotionDto> msgDto);

    /**
     * 推送客户端设置插件数据
     * @author lucher
     * @date 2022/09/15 17:09
     * @param msgDto
     */
    void pushClientSet(MsgDto<ClientSetDto> msgDto);

    /**
     * 发送切换设备端指令
     * @author jitwxs
     * @date 2021/11/30 17:09
     * @param msgDto
     */
    void sendDeviceMsgHander(MsgDto msgDto);

    /**
     * 发送请求话费余额指令
     * @author jitwxs
     * @date 2021/11/30 17:09
     * @param msgDto
     */
    void sendQueryPhoneBal(MsgDto<SendSmsReqProtoc> msgDto);

    /**
     * 推送客服配置
     * @author jitwxs
     * @date 2021/11/30 17:09
     * @param kefuUserConfigDto
     */
    void chatappPushConfig(KefuUserConfigDto kefuUserConfigDto);

    /**
     * 异步发送系统异常报警消息
     * @author jitwxs
     * @date 2021/11/30 17:09
     * @param alarmMsgFeignDto
     */
    void sendSysAlarmMsgAsync(AlarmMsgFeignDto alarmMsgFeignDto);

    /**
     * 异步订单统计数据消息
     * @author jitwxs
     * @date 2021/11/30 17:09
     * @param orderReportDto
     */
    void sendOrderReportAsync(OrderReportDto orderReportDto);

}
